This patch invalidates the whole DART cache rather than the single
entry. Until we get single entry invalidating we'll have an obvious
performance issue.
Signed-off-by: Jimi Xenidis <jimix@watson.ibm.com>
Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com>
--HG--
extra : transplant_source : %2A%A9%A6T%08%BC%10YL%D2H%8Ff%40WO%5E%A6uI
*/
#undef DEBUG
+#define INVALIDATE_ALL
#include <xen/config.h>
#include <xen/types.h>
static void u4_inv_entry(ulong pgn)
{
+#ifdef INVALIDATE_ALL
+ return u4_inv_all();
+#else
union dart_ctl dc;
ulong retries = 0;
+ return u4_inv_all();
+
dc.dc_word = in_32(&dart->d_dartcntl.dc_word);
dc.dc_bits.dc_ilpn = pgn;
dc.dc_bits.dc_ione = 1;
if (retries > 1000000)
panic("WAY! too long\n");
} while (dc.dc_bits.dc_ione != 0);
+#endif
}
static struct dart_ops u4_ops = {